package ctrl;
import model.*;

public class PersonCtrl
{
    /**
     * Instance variables
     */
    private PersonCon pc;
    /**
     * Constructor for objects of class Person
     */
    public PersonCtrl()
    {
        /**
         * Her kaldes metode på PersonCon, som laver en ny Personcontainer, 
         * hvis ikke der eksisterer en i forvejen
         */
        pc = pc.getInstance();
    }

    /**
     * Der dannes en ny person på baggrund af brugerens input og den addes til ArrayListen.
     * @param navn Setter navn på en nyoprettet person
     * adress Setter adress på en nyoprettet person
     * postalCode Setter postalCode på en nyoprettet person
     * city Setter city på en nyoprettet person
     * phone Setter phone på en nyoprettet person
     */
    public void createPerson(String navn, String adress, String postalCode, String city, String phone)
    {
        Person p = new Person(navn, adress, postalCode, city, phone);
        pc.addPerson(p);
    }

    /**
     * Her kaldes en tideligere metode, som giver mulighed for at finde en person.
     * @param phoneNumber Her søger man på phoneNumber, for at finde en person
     */
    public Person findPerson(String phoneNumber)
    {
        return pc.findPerson(phoneNumber); //metodekald returnerer en person
    }

    /**
     * Her fjernes en person fra listen, ved søgning på phone
     * @param phone phone bliver brugt til at søge på, for at fjerne en person
     */
    public boolean removePerson(String phone)
    {
        Person p = pc.findPerson(phone);

        if(p != null)
        {
            pc.removePerson(p);
            return true;
        }
        else
        {
            return false;
        }
    }

    /**
     * Denne metode viser alle oprettede persons.
     */
    public void listAllPersons()
    {
        pc.listPersons();
    }
}